package day.day10;

import java.util.*;

import org.junit.Test;

/**
 * 	带有优先级的队列
 * 		使用步骤：
 * 			1.创建实体类
 * 			2.创建比较类Comparator，编写比较规则
 * 			3.创建带有Comparator的比较队列，
 * @author Administrator
 *
 */
public class PriorityQueueDemo {
	
	/**
	 * 	获取
	 */
	@Test
	public void demo1() {
		PriorityQueue<String> q = new PriorityQueue<String>();  // Comparator 
	}
	
	
	/**
	 * 	字符串排序
	 */
	@Test
	public void demo2() {
		PriorityQueue<String> q = new PriorityQueue<String>(); // Comparator  "".compareTo("")
		
		q.add("g");
		q.add("d");
		q.add("f");
		q.add("a");
		q.add("e");
		q.add("h");
		q.add("u");
		q.add("i");
		q.add("x");
		
		String s = q.poll();
		while(s != null) {
			System.out.println(s);
			s = q.poll();
		}
		
//		String s = q.poll();// 获取
//		System.out.println(q.poll());
	}
	
	
	/**
	 * vip
	 */
	@Test
	public void demo3() {
		
		PriorityQueue<Person> q = new PriorityQueue<Person>(new PersonComparator());
		
		q.add(new Person("张三", 1));
		q.add(new Person("李四", 2));
		q.add(new Person("王五", 3));
		q.add(new Person("小红", 6));
		q.add(new Person("小明", 9));
		q.add(new Person("大强", 1));
		q.add(new Person("建国", 9));
		
		Person p = q.poll();
		while(p != null) {
			System.out.println(p.getName());
			p = q.poll();
		}






		
//		System.out.println("vip1".compareTo("vip10"));

	}

}
